home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / TUTORIAL.BIN / Label3D.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-16  |  4.7 KB  |  233 lines

  1. package symantec.itools.awt;
  2.  
  3. import java.awt.Canvas;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Dimension;
  7. import java.awt.Font;
  8. import java.awt.FontMetrics;
  9. import java.awt.Graphics;
  10. import java.awt.Rectangle;
  11.  
  12. public class Label3D extends Canvas implements AlignStyle, BevelStyle {
  13.    public static final int INDENT_ZERO = 0;
  14.    public static final int INDENT_ONE = 1;
  15.    public static final int INDENT_TWO = 2;
  16.    protected String sLabel3D;
  17.    private int alignStyle;
  18.    private int bevelStyle;
  19.    private Color color1;
  20.    private Color color2;
  21.    private Color textColor;
  22.    private Color borderedColor;
  23.    // $FF: renamed from: fm java.awt.FontMetrics
  24.    private FontMetrics field_0;
  25.    private int xTemp;
  26.    private int yTemp;
  27.    private int indent;
  28.    private boolean bOsFlag;
  29.  
  30.    public Label3D() {
  31.       this("", 1, 1, Color.black, 0);
  32.    }
  33.  
  34.    public Label3D(String var1, int var2, int var3) {
  35.       this(var1, var2, var3, Color.black, 0);
  36.    }
  37.  
  38.    public Label3D(String var1, int var2, int var3, Color var4) {
  39.       this(var1, var2, var3, var4, 0);
  40.    }
  41.  
  42.    public Label3D(String var1, int var2, int var3, int var4) {
  43.       this(var1, var2, var3, Color.black, var4);
  44.    }
  45.  
  46.    public Label3D(String var1, int var2, int var3, Color var4, int var5) {
  47.       this.bOsFlag = false;
  48.       String var6 = System.getProperty("os.name");
  49.       if (!var6.startsWith("S") && !var6.startsWith("OSF")) {
  50.          this.bOsFlag = false;
  51.       } else {
  52.          this.bOsFlag = true;
  53.          ((Component)this).setFont(new Font("Dialog", 0, 10));
  54.       }
  55.  
  56.       this.sLabel3D = var1;
  57.       this.textColor = var4;
  58.       this.borderedColor = Color.black;
  59.       this.setBorderIndent(var5, false);
  60.       this.setAlignStyle(var2);
  61.       this.setBevelStyle(var3);
  62.    }
  63.  
  64.    public void setAlignStyle(int var1) {
  65.       this.alignStyle = var1;
  66.       ((Component)this).invalidate();
  67.    }
  68.  
  69.    public int getAlignStyle() {
  70.       return this.alignStyle;
  71.    }
  72.  
  73.    public void setBevelStyle(int var1) {
  74.       this.bevelStyle = var1;
  75.       switch (var1) {
  76.          case 0:
  77.             this.color1 = Color.black;
  78.             this.color2 = Color.white;
  79.             break;
  80.          case 1:
  81.             this.color1 = Color.white;
  82.             this.color2 = Color.black;
  83.             break;
  84.          case 2:
  85.             this.color1 = this.borderedColor;
  86.             this.color2 = this.borderedColor;
  87.             break;
  88.          default:
  89.             this.color1 = this.color2 = null;
  90.       }
  91.  
  92.       ((Component)this).invalidate();
  93.    }
  94.  
  95.    public int getBevelStyle() {
  96.       return this.bevelStyle;
  97.    }
  98.  
  99.    public void setBorderIndent(int var1) {
  100.       this.setBorderIndent(var1, true);
  101.    }
  102.  
  103.    public int getBorderIndent() {
  104.       return this.indent;
  105.    }
  106.  
  107.    public void setBorderedColor(Color var1) {
  108.       this.borderedColor = var1;
  109.       if (this.bevelStyle == 2) {
  110.          this.color1 = var1;
  111.          this.color2 = var1;
  112.       }
  113.  
  114.       ((Component)this).invalidate();
  115.    }
  116.  
  117.    public void setText(String var1) {
  118.       this.sLabel3D = var1;
  119.       ((Component)this).repaint();
  120.    }
  121.  
  122.    public String getText() {
  123.       return this.sLabel3D;
  124.    }
  125.  
  126.    public void setTextColor(Color var1) {
  127.       this.textColor = var1;
  128.       ((Component)this).invalidate();
  129.    }
  130.  
  131.    public Color getTextColor() {
  132.       return this.textColor;
  133.    }
  134.  
  135.    public void paint(Graphics var1) {
  136.       Rectangle var2 = ((Component)this).bounds();
  137.       Color var3 = var1.getColor();
  138.       var1.setColor(((Component)this).getBackground());
  139.       var1.fillRect(0, 0, var2.width - 1, var2.height - 1);
  140.       if (this.color1 != null) {
  141.          var1.clipRect(0, 0, var2.width, var2.height);
  142.          var1.setColor(this.color1);
  143.          var1.drawLine(1 + this.indent, this.indent, var2.width - 3 - this.indent, this.indent);
  144.          var1.setColor(this.color2);
  145.          var1.drawLine(1 + this.indent, var2.height - 1 - this.indent, var2.width - 3 - this.indent, var2.height - 1 - this.indent);
  146.          var1.setColor(this.color1);
  147.          var1.drawLine(this.indent, this.indent, this.indent, var2.height - 1 - this.indent);
  148.          var1.setColor(this.color2);
  149.          var1.drawLine(var2.width - 2 - this.indent, this.indent, var2.width - 2 - this.indent, var2.height - 1 - this.indent);
  150.          var1.clipRect(2 + this.indent, 1 + this.indent, var2.width - 9 - this.indent, var2.height - 4 - this.indent);
  151.          this.yTemp = 1 + this.indent;
  152.       } else {
  153.          var1.drawRect(this.indent, this.indent, var2.width - 2 - this.indent, var2.height - 1 - this.indent);
  154.          var1.clipRect(2, 1, var2.width - 7, var2.height - 2);
  155.          this.yTemp = 1;
  156.       }
  157.  
  158.       var1.setColor(this.textColor);
  159.       this.field_0 = ((Component)this).getFontMetrics(((Component)this).getFont());
  160.       this.yTemp = (var2.height - this.yTemp + this.field_0.getAscent()) / 2;
  161.       switch (this.alignStyle) {
  162.          case 0:
  163.             if (this.bevelStyle == 2) {
  164.                var1.drawString(this.sLabel3D, 4, this.yTemp);
  165.             } else {
  166.                var1.drawString(this.sLabel3D, 8, this.yTemp);
  167.             }
  168.             break;
  169.          case 1:
  170.             this.xTemp = (var2.width - this.field_0.stringWidth(this.sLabel3D)) / 2;
  171.             var1.drawString(this.sLabel3D, this.xTemp, this.yTemp);
  172.             break;
  173.          case 2:
  174.             this.xTemp = var2.width - this.field_0.stringWidth(this.sLabel3D);
  175.             if (this.bevelStyle == 2) {
  176.                var1.drawString(this.sLabel3D, this.xTemp - 6, this.yTemp);
  177.             } else {
  178.                var1.drawString(this.sLabel3D, this.xTemp - 10, this.yTemp);
  179.             }
  180.       }
  181.  
  182.       var1.setColor(var3);
  183.    }
  184.  
  185.    public Dimension preferredSize() {
  186.       Dimension var1 = ((Component)this).size();
  187.       Dimension var2 = this.minimumSize();
  188.       return new Dimension(Math.max(var1.width, var2.width), Math.max(var1.height, var2.height));
  189.    }
  190.  
  191.    public Dimension minimumSize() {
  192.       Dimension var1 = new Dimension(18, 10);
  193.       Font var2 = ((Component)this).getFont();
  194.       if (var2 == null) {
  195.          if (this.bOsFlag) {
  196.             var1.height = 29;
  197.          }
  198.       } else {
  199.          this.field_0 = ((Component)this).getFontMetrics(var2);
  200.          var1.width = this.field_0.stringWidth(this.sLabel3D) + 18;
  201.          var1.height = this.field_0.getHeight() + 10;
  202.          if (this.bOsFlag && var1.height < 29) {
  203.             var1.height = 29;
  204.          }
  205.       }
  206.  
  207.       return var1;
  208.    }
  209.  
  210.    public synchronized void reshape(int var1, int var2, int var3, int var4) {
  211.       super.reshape(var1, var2, var3, var4);
  212.       if (!((Component)this).isValid()) {
  213.          ((Component)this).repaint();
  214.       }
  215.  
  216.    }
  217.  
  218.    private void setBorderIndent(int var1, boolean var2) {
  219.       if (var1 < 0) {
  220.          this.indent = 0;
  221.       } else if (var1 > 2) {
  222.          this.indent = 2;
  223.       } else {
  224.          this.indent = var1;
  225.       }
  226.  
  227.       if (var2) {
  228.          ((Component)this).repaint();
  229.       }
  230.  
  231.    }
  232. }
  233.